SoftwareShield has a highly modular design that it allows you to use any part of the following optional components:
Ironwrapper
SoftwareShield's application binary-based \emph{Ironwrapper} wrapping technology provides a protection layer without modifying the application's source code. It is a standalone low-level component that is driven by SoftwareShield IDE when building license project, however it can also be invoked directly via its command line interface.
SDK and License
SoftwareShield implements multiple built-in license models, secure license storage and online / offline activation, all these license logics are implemented in the SoftwareShield runtime, a dynamic library (gsCore.dll on Windows and libgsCore.dylib on Mac) that can be integrated with application's source code.
License UI
By default, SoftwareShield provides built-in license UI for a license project, the license UI implements event listeners allowing end user to activate application entities, dealing with runtime errors, transferring license to another machine, etc. You can customize the default UI template to fit your own need, such as GUI layout, images.
According to features used, SoftwareShield supports 4 types of license projects:
Project Type | Use Ironwrap | Use License | License GUI | Need SDK Integration | Professional Edition | Enterprise Edition |
---|---|---|---|---|---|---|
Standard | Built-in UI_HTML | Depends, most likely No | ||||
Wrap Only | ||||||
License Only | User Developed | |||||
Custom | User Developed |
This is the default project type mostly used by SoftwareShield customers.
The typical work-flow of using Standard project type is:
After building the project, the protected application binary is ready for QA, there is no need to have access to your application's source code, everything works at binary level. However, in some scenarios that you want to query license information and change your application's behavior according to the active license status, you can integrate SoftwareShield SDK with your application's source code, compile the application as usual (but now the application binary needs SoftwareShield runtime, gsCore.dll or libgsCore.dylib, to run properly), copy the new application binaries to license project's "Src/" folder, build the license project again, then the output application will be tightly integrated with SoftwareShield SDK and protected by Ironwrapper.
This project type is similar to Standard Project Type that it also uses Ironwrapper to protect its binaries, however, it integrates tightly with SDK at source code level and implements its own license GUI to support application activation, error handling, etc.
For example, as a game developer, you want the game players have a consistent user experience, the SoftwareShield built-in license UI might looks weird or alien to end users so you can develop the license UI inside your game based on the selected game rendering engine (OpenGL, DirectX, Flash, Director, etc.).
The typical work-flow of using Custom project type is:
When developing your own application-specific license GUI, you are assumed to have full knowledge of your application's source code and know when and how to render the in-app UI to avoid any possible runtime conflicts encountered by using a SoftwareShield built-in UI template, so the Execution Mode does not make sense and is not used in custom project type.
This project type does not use SoftwareShield Ironwrapper technology, when the project is built, a license file is generated as the only output. It is used when you only want to integrate with the SDK for license purpose, and the application does not need wrapping protection, or you are using third party solution to protect your binaries.
The work-flow of License Only project type is:
Wrap-only project type is a special one that only use SoftwareShield low-level Ironwrapper feathre and does not use any high-level license components. You may choose this project type when you have your own or use other third party license solution and only want to protect the application binaries with Ironwrapper.
The work-flow of Wrap Only project type is:
SoftwareShield has two different editions:
This edition can be used to protect application which:
Does not need SDK Integration; The Professional edition works on the binary level, no source code integration is necessary.
However, the SDK OOP api can be accessed to retrieve current license status, but the license activating / transferring apis are not supported for professional edition.
Does not need in-app license GUI; The built-in license GUI templates are implemented based on HTML/Javascript, which can be customized by developers, we provide complete javascript APIs to support license status retrieving, activating, transferring, etc.
The supported license project types are Standard and Wrap-Only.
Enterprise Edition supports all kinds of license projects, if you want to develop your own license UI inside your application, or develop your own license logic to tightly Integrate with SoftwareShield SDK, you must use this edition.